class Person {
  String name;

  static var instance;

  // 工厂构造函数
  factory Person([String name = '流动']) {
    // 工厂构造函数中，不能使用this
    if (Person.instance == null) {
      // 第一次实例化
      Person.instance = new Person.newSelf(name);
    }

    return Person.instance;
  }

  Person.newSelf(this.name);
}

void main() {
  Person p1 = new Person('测试');
  print(p1.name);

  Person p2 = new Person('asd');
  print(p2.name);

  print(p1 == p2);
}
